package pratice.fengzhongye.interview;

import org.junit.Before;
import org.junit.Test;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * 集合中, 迭代器的删除问题
 *
 * @author 吴宇亮 on 2019/2/21 0021 09:44
 */
public class Lesson25_Iterator {

    List<String> list;

    @Before
    public void before(){
        list = new ArrayList<>();
        list.add("hello");
        list.add("world");
        list.add("helloWorld");
    }

    @Test
    public void test(){
        //这里其实不会把list的每一个元素删掉，因为Arraylist底层是一个数组，会前移。所以JDK就提供了Itertor
        for(int i = 0; i < list.size(); i++){
            list.remove(i);
        }

        System.out.println(list);
    }

    @Test
    public void test2(){
        for(Iterator<String> iter = list.iterator(); iter.hasNext();){
            String next = iter.next();
            if("hello".equals(next))
                iter.remove();
        }

        System.out.println(list);
    }

}
